package com.gugee.ins.data.collector.blogger.config;

import com.alibaba.nacos.api.config.annotation.NacosValue;
import lombok.Getter;
import lombok.Setter;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;

/**
 * DataConsumerConfig
 * @author Huangxin
 */
@Configuration
@Getter
@Setter
public class CollectorBloggerConfig {

    /**
     * 日志打印时间要求
     */
    @NacosValue(value="${ins.data.collector.insBlogger.logTime.debug.limit}", autoRefreshed = true)
    long debugTimeLimit;


    /**
     * insBlogger 更新 主线程池数
     */
    @Value(value="${ins.data.threadpools.insBloggerUpdate.corePollSize}")
    int insBloggerUpdateCorePollSize;
    /**
     * 推荐流模拟核心线程数
     */
    @Value(value="${ins.data.threadpools.insBlogger.feed.corePollSize}")
    int insBloggerFeedCorePollSize;

    /**
     * insBlogger 采集 kafka topic
     */
    @Value(value="${kafka.topics.insBloggerCollect.online}")
    String insBloggerCollectOnlineTopic;

    /**
     * insBlogger 更新 kafka topic
     */
    @Value(value="${kafka.topics.insBloggerUpdate.online}")
    String insBloggerUpdateOnlineTopic;

    /**
     * insBlogger 更新 kafka topic
     */
    @Value(value="${kafka.topics.insMBloggerCl.online}")
    String insBloggerMainCollectOnlineTopic;

    /**
     * 批量查询数量
     */
    @NacosValue(value="${ins.data.collector.batchQuery.insBloggerCollect.nums:50}", autoRefreshed = true)
    int insBloggerCollectBatchNums;

    /**
     * insBlogger 采集 消息重发最大次数
     */
    @NacosValue(value="${ins.data.collector.message.insBloggerCollect.retry:1}", autoRefreshed = true)
    int insBloggerCollectRetryTimes;

    /**
     * insBlogger 更新 消息重发最大次数
     */
    @NacosValue(value="${ins.data.collector.message.insBloggerUpdate.retry:1}", autoRefreshed = true)
    int insBloggerUpdateRetryTimes;

    /**
     * insBlogger 更新 消息重发最大次数
     */
    @NacosValue(value="${ins.data.collector.message.insBloggerMainCollect.retry:1}", autoRefreshed = true)
    int insBloggerMainRetryTimes;

    /**
     * insBlogger 采集 消息时限范围
     */
    @NacosValue(value="${ins.data.collector.insBloggerCollect.accept.minTime.limit:1440}", autoRefreshed = true)
    int acceptInsBloggerCollectMsgTimeMinRange;

    /**
     * insBlogger 关注人采集 消息时限范围
     */
    @NacosValue(value="${ins.data.collector.insBloggerFeed.accept.minTime.limit:1440}", autoRefreshed = true)
    int acceptInsBloggerFeedMsgTimeMinRange;

    /**
     * insBlogger 更新 消息时限范围
     */
    @NacosValue(value="${ins.data.collector.insBloggerUpdate.accept.minTime.limit:1440}", autoRefreshed = true)
    int acceptInsBloggerUpdateMsgTimeMinRange;

    /**
     * 僵尸粉关注数
     */
    @NacosValue(value="${ins.data.collector.insBlogger.zombie.following.count:1000}", autoRefreshed = true)
    int zombieFollowingCount;

    /**
     * 进入大博主的粉丝数
     */
    @NacosValue(value="${ins.data.collector.insBloggerMain.follower.count}", autoRefreshed = true)
    int insBloggerMainCollectFollowerCount;

    /**
     * 每次爬取关注列表的条数，0：默认值
     */
    @NacosValue(value="${ins.spider.blogger.following.each.count:0}", autoRefreshed = true)
    int insSpiderBloggerFollowingEachCount;

    /**
     * 推荐流采集我的粉丝最大记录数
     */
    @NacosValue(value="${ins.data.collector.insBloggerFeed.follower.totalCount:5000}", autoRefreshed = true)
    int insFeedFollowerTotalCount;

    /**
     * 推荐流中采集粉丝:每次爬取接口需要返回的条数
     */
    @NacosValue(value="${ins.data.collector.insBloggerFeed.follower.batchSize:50}", autoRefreshed = true)
    int insFeedFollowerBatchSize;

    /**
     * 推荐流:是否跳过我的粉丝、我的关注接口。0全跳过、1跳过我的粉丝接口、2跳过我的关注列表接口、3都不跳过
     */
    @NacosValue(value="${ins.data.collector.insBloggerFeed.jumpType:0}", autoRefreshed = true)
    int insFeedJumpType;

    /**
     * 推荐流:通过休眠时间控制推荐速度，单位秒
     */
    @NacosValue(value="${ins.data.collector.insBloggerFeed.sleepSeconds:5}", autoRefreshed = true)
    int insFeedSpeedTimes;

    /**
     * 播主收录时，是否开启对username接口的爬取来获取分类
     */
    @NacosValue(value="${ins.data.collector.insBloggerCollect.username.disabled:true}", autoRefreshed = true)
    boolean insBloggerCollectUsernameDisabled;
}
